/**
 * @(#) Buffer.java
 */

package receiver;

public class Buffer
{

	//private MEImpl me;
	/**
	 * le buffer pour stocker le texte saisi
	 */
	StringBuilder buffer;
	/**
	 * construit un buffer du type StringBuilder
	 */
	public Buffer (){
		buffer = new StringBuilder();
	}
	/**
	 * une methode pour retourner le contenu du buffer
	 * @param debut la position du debut 
	 * @param fin   la position de fin
	 * @return une chaine de caracteres du type String
	 */
	public String getContenu( int debut, int fin )
	{
		return buffer.substring(debut, fin);
	}
	/**
	 * une methode pour effacer un contenu du buffer
	 * @param debut la position du debut 
	 * @param fin   la position de fin 
	 * @return	une chaine de caracteres effacee de type String
	 */
	public String effacer( int debut, int fin )
	{
		//s'il ya une selection, on la supprime
		if (debut < fin)
			buffer.delete(debut, fin);
		else //on supprime le caractère a gauche
			buffer.delete(debut -1, fin);
		return buffer.toString();
			
		
	}
	/**
	 * une methode pour inserer un contenu dans le buffer
	 * @param chaine   la chaine a inserer
	 * @param position la position a partir de laquelle on insere
	 * @return
	 */
	public String inserer( String chaine, int position )
	{
		return buffer.insert(position, chaine).toString();
	}
	/**
	 * une methode pour retourner le contenu entier du buffer
	 * @return une chaine de caracteres de type String
	 */
	public String getContenu() {
		
		return buffer.substring(0);
	}


}
